/**
@file		string_format.h
@author		huangwei
@param		sir.huangwei@gmail.com
@param		http://git.oschina.net/huangwei
@param		https://github.com/huangwei1024
@date		2013/11/30
@brief		
*/

#pragma once

#ifndef __STRING_FORMAT_H__
#define __STRING_FORMAT_H__


/**
	http://msdn.microsoft.com/en-us/library/56e442dc(v=vs.90).aspx

	A format specification, which consists of optional and required fields, has the following form:
	%[flags] [width] [.precision] [{h | l | ll | I | I32 | I64}]type

	Character	Type
	c			char or wchar_t
	C			char or wchar_t
	d			signed int
	i			signed int
	o			unsigned int
	u			unsigned int
	x			unsigned int
	X			unsigned int
	e			double
	E			double
	f			double
	g			double
	G			double
	a			double
	A			double
	p			Pointer to void
	s			String
	S			String
 */

#include <assert.h>
#include <stdio.h>
#include <string.h>

#define FMT_DEBUG_INFO "[string format]"

#define FMT_ASSERT(x) //assert(x)

#define FMT_ASSERT_FALSE(x)\
	{FMT_ASSERT((x), 0); return false;}

#define FMT_P0_ASSERT_FALSE(f)\
	{printf(FMT_DEBUG_INFO "\"%s\": " f "\n", format); FMT_ASSERT(0); return false;}

#define FMT_P1_ASSERT_FALSE(f, p1)\
	{printf(FMT_DEBUG_INFO "\"%s\": " f "\n", format, p1); FMT_ASSERT(0); return false;}

#define FMT_P2_ASSERT_FALSE(f, p1, p2)\
	{printf(FMT_DEBUG_INFO "\"%s\": " f "\n", format, p1, p2); FMT_ASSERT(0); return false;}

#define FMT_P3_ASSERT_FALSE(f, p1, p2, p3)\
	{printf(FMT_DEBUG_INFO "\"%s\": " f "\n", format, p1, p2, p3); FMT_ASSERT(0); return false;}

#define FMT_P4_ASSERT_FALSE(f, p1, p2, p3, p4)\
	{printf(FMT_DEBUG_INFO "\"%s\": " f "\n", format, p1, p2, p3, p4); FMT_ASSERT(0); return false;}

namespace CBaseFunc {
extern int vFormatString(std::string &str, const char* format, va_list ap);
}

namespace string_format {

enum E_TYPE {
	Type_end = -1,
	Type_bool = 0,
	Type_char,
	Type_wchar,
	Type_int16,
	Type_uint16,
	Type_int32,
	Type_uint32,
	Type_int64,
	Type_uint64,
	Type_float,
	Type_double,
	Type_pointer,
	Type_string,
	Type_wstring,
	Type_unknown,
};

const static char* kTypeName[] = {
	"bool",
	"char",
	"wchar",
	"int16",
	"uint16",
	"int32",
	"uint32",
	"int64",
	"uint64",
	"float",
	"double",
	"pointer",
	"string",
	"wstring",
	"unknown",
};

const static char* kPrefixTypeTable[][5] = {
	{""},
	{""},
	{""},
	{""},
	{""},
	{"l", "I", "I32", ""},
	{"l", "I", "I32", ""},
	{"ll", "I64", ""},
	{"ll", "I64", ""},
	{""},
	{"l", ""},
	{""},
	{""},
	{""},
	{""},
};

const static char* kTypeTable[] = {
	"cCdiouxX",
	"cdiouxX",
	"CdiouxX",
	"diouxX",	// call stack, short storage in long
	"diouxX",	// call stack, short storage in long
	"di",		
	"ouxX",
	"di",
	"ouxX",
	"eEfgGaA",
	"eEfgGaA",
	"p",
	"sp",
	"Sp",
	"",
};


inline int _InternalCallVHelper(std::string &str, const char* format, ...) {
	va_list ap;
	va_start(ap, format);
	int length = CBaseFunc::vFormatString(str, format, ap);
	va_end(ap);
	return length;
}

inline int _InternalIsStr(const char* p, const char* p_pat) {
	const char* p_pat_base = p_pat;
	for (; *p_pat && *p; ++ p_pat, ++ p) {
		if (*p != *p_pat) return 0;
	}
	return *p_pat == 0 ? int(p_pat - p_pat_base) : 0;
}

inline bool _InternalScanType(const char* format, const char*& ptr, int type, int idx) {
	if (*ptr == 0)
		FMT_P0_ASSERT_FALSE("%% no match");
	const char* p;
	for (p = ptr; *p && *p != '%'; ++ p) {
		if (('a' <= *p && *p <= 'z') || ('A' <= *p && *p <= 'Z')) {
			// scan
			int pre_type = -1;
			char type_ch = 0;
			for (int i = 0; kPrefixTypeTable[type][i][0] != 0; ++ i) {
				int len = _InternalIsStr(p, kPrefixTypeTable[type][i]);
				if (len) {
					pre_type = i;
					p += len;
					break;
				}
			}
			type_ch = *p ++;
			// analyze
			for (int i = 0; kTypeTable[type][i]; ++ i) {
				if (type_ch == kTypeTable[type][i]) {
					ptr = p;
					return true;
				}
			}
			FMT_P4_ASSERT_FALSE("%s%s no match with %d param %s", (idx<=1?"":"..."), ptr-1, idx, kTypeName[type]);
		}
	}
	return false;
}

inline bool _InternalSafeFormat(const char* format, ...) {
	int type = Type_end, idx = 1;
	const char* ptr = format;
	va_list ap;
	va_start(ap, format);
	do {
		type = va_arg(ap, int);
		if (type == Type_end)
			break;
		else if (type == Type_unknown)
			FMT_P2_ASSERT_FALSE("%d param is %s", idx, kTypeName[type]);
		for (; *ptr; ++ ptr) {
			if (*ptr == '%') {
				if (*(ptr+1) == '%') {
					++ ptr;
					continue;
				}
				break;
			}
		}
		if (*ptr == 0)
			FMT_P1_ASSERT_FALSE("too many params, used %d params", idx - 1);
		if (!_InternalScanType(format, ++ ptr, type, idx))
			return false;
		else
			++ idx;
	} while (true);
	va_end(ap);

	for (; *ptr; ++ ptr) {
		if (*ptr == '%' && *++ ptr != '%')
			FMT_P0_ASSERT_FALSE("%% no match, need more params");
	}

	return true;
}

// type trait
template<bool C, int A, int B> struct if_ {};
template<int A, int B> struct if_<true, A, B> { enum {type = A}; };
template<int A, int B> struct if_<false, A, B> { enum {type = B}; };

template<typename A>
struct is_ptr { static const bool type = false; };
template<typename A>
struct is_ptr<A*> { static const bool type = true; };

template<typename A>
struct remove_const { typedef A type; };
template<typename A>
struct remove_const<const A> { typedef A type; };
template<typename A>
struct remove_const<const A*> { typedef A* type; };

template <typename T> struct type_enum { enum {type = if_<is_ptr<T>::type, Type_pointer, Type_unknown>::type}; };
template <> struct type_enum <bool> { enum {type = Type_bool}; };
template <> struct type_enum <char> { enum {type = Type_char}; };
template <> struct type_enum <unsigned char> { enum {type = Type_char}; };
template <> struct type_enum <wchar_t> { enum {type = Type_wchar}; };
template <> struct type_enum <short> { enum {type = Type_int16}; };
template <> struct type_enum <unsigned short> { enum {type = Type_uint16}; };
template <> struct type_enum <long> { enum {type = Type_int32}; };
template <> struct type_enum <unsigned long> { enum {type = Type_uint32}; };
template <> struct type_enum <int> { enum {type = Type_int32}; };
template <> struct type_enum <unsigned int> { enum {type = Type_uint32}; };
template <> struct type_enum <long long> { enum {type = Type_int64}; };
template <> struct type_enum <unsigned long long> { enum {type = Type_uint64}; };
template <> struct type_enum <float> { enum {type = Type_float}; };
template <> struct type_enum <double> { enum {type = Type_double}; };
template <> struct type_enum <void*> { enum {type = Type_pointer}; };
template <> struct type_enum <char*> { enum {type = Type_string}; };
template <> struct type_enum <wchar_t*> { enum {type = Type_wstring}; };

template<typename A>
struct class_type { enum {type = type_enum<typename remove_const<A>::type>::type}; };

};

//////////////////////////////////////////////////////////////////////////
// helper

#define BEGINE_STRING_FORMAT()\
	using namespace string_format;\
	str.clear();\

#define NOT_SAFE_HANDLE()\
	((void*)0); // return -1;

namespace CBaseFunc
{

inline int TextFormatString(std::string &str, const char* format) {
	str.clear();
	if (!string_format::_InternalSafeFormat(format, 
		string_format::Type_end)) NOT_SAFE_HANDLE();
	str = format;
	return (int)str.length();
}

template <typename T1>
inline int TextFormatString(std::string &str, const char* format, T1 p1) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1);
}


template <typename T1, typename T2>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2);
}


template <typename T1, typename T2, typename T3>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3);
}


template <typename T1, typename T2, typename T3, typename T4>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140, typename T141>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140, T141 p141) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, class_type<T141>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140, typename T141, typename T142>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140, T141 p141, T142 p142) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, class_type<T141>::type, class_type<T142>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140, typename T141, typename T142, typename T143>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140, T141 p141, T142 p142, T143 p143) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, class_type<T141>::type, class_type<T142>::type, class_type<T143>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140, typename T141, typename T142, typename T143, typename T144>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140, T141 p141, T142 p142, T143 p143, T144 p144) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, class_type<T141>::type, class_type<T142>::type, class_type<T143>::type, class_type<T144>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143, p144);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140, typename T141, typename T142, typename T143, typename T144, typename T145>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140, T141 p141, T142 p142, T143 p143, T144 p144, T145 p145) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, class_type<T141>::type, class_type<T142>::type, class_type<T143>::type, class_type<T144>::type, class_type<T145>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143, p144, p145);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140, typename T141, typename T142, typename T143, typename T144, typename T145, typename T146>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140, T141 p141, T142 p142, T143 p143, T144 p144, T145 p145, T146 p146) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, class_type<T141>::type, class_type<T142>::type, class_type<T143>::type, class_type<T144>::type, class_type<T145>::type, class_type<T146>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143, p144, p145, p146);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140, typename T141, typename T142, typename T143, typename T144, typename T145, typename T146, typename T147>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140, T141 p141, T142 p142, T143 p143, T144 p144, T145 p145, T146 p146, T147 p147) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, class_type<T141>::type, class_type<T142>::type, class_type<T143>::type, class_type<T144>::type, class_type<T145>::type, class_type<T146>::type, class_type<T147>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143, p144, p145, p146, p147);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140, typename T141, typename T142, typename T143, typename T144, typename T145, typename T146, typename T147, typename T148>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140, T141 p141, T142 p142, T143 p143, T144 p144, T145 p145, T146 p146, T147 p147, T148 p148) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, class_type<T141>::type, class_type<T142>::type, class_type<T143>::type, class_type<T144>::type, class_type<T145>::type, class_type<T146>::type, class_type<T147>::type, class_type<T148>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143, p144, p145, p146, p147, p148);
}


template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32, typename T33, typename T34, typename T35, typename T36, typename T37, typename T38, typename T39, typename T40, typename T41, typename T42, typename T43, typename T44, typename T45, typename T46, typename T47, typename T48, typename T49, typename T50, typename T51, typename T52, typename T53, typename T54, typename T55, typename T56, typename T57, typename T58, typename T59, typename T60, typename T61, typename T62, typename T63, typename T64, typename T65, typename T66, typename T67, typename T68, typename T69, typename T70, typename T71, typename T72, typename T73, typename T74, typename T75, typename T76, typename T77, typename T78, typename T79, typename T80, typename T81, typename T82, typename T83, typename T84, typename T85, typename T86, typename T87, typename T88, typename T89, typename T90, typename T91, typename T92, typename T93, typename T94, typename T95, typename T96, typename T97, typename T98, typename T99, typename T100, typename T101, typename T102, typename T103, typename T104, typename T105, typename T106, typename T107, typename T108, typename T109, typename T110, typename T111, typename T112, typename T113, typename T114, typename T115, typename T116, typename T117, typename T118, typename T119, typename T120, typename T121, typename T122, typename T123, typename T124, typename T125, typename T126, typename T127, typename T128, typename T129, typename T130, typename T131, typename T132, typename T133, typename T134, typename T135, typename T136, typename T137, typename T138, typename T139, typename T140, typename T141, typename T142, typename T143, typename T144, typename T145, typename T146, typename T147, typename T148, typename T149>
inline int TextFormatString(std::string &str, const char* format, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, T10 p10, T11 p11, T12 p12, T13 p13, T14 p14, T15 p15, T16 p16, T17 p17, T18 p18, T19 p19, T20 p20, T21 p21, T22 p22, T23 p23, T24 p24, T25 p25, T26 p26, T27 p27, T28 p28, T29 p29, T30 p30, T31 p31, T32 p32, T33 p33, T34 p34, T35 p35, T36 p36, T37 p37, T38 p38, T39 p39, T40 p40, T41 p41, T42 p42, T43 p43, T44 p44, T45 p45, T46 p46, T47 p47, T48 p48, T49 p49, T50 p50, T51 p51, T52 p52, T53 p53, T54 p54, T55 p55, T56 p56, T57 p57, T58 p58, T59 p59, T60 p60, T61 p61, T62 p62, T63 p63, T64 p64, T65 p65, T66 p66, T67 p67, T68 p68, T69 p69, T70 p70, T71 p71, T72 p72, T73 p73, T74 p74, T75 p75, T76 p76, T77 p77, T78 p78, T79 p79, T80 p80, T81 p81, T82 p82, T83 p83, T84 p84, T85 p85, T86 p86, T87 p87, T88 p88, T89 p89, T90 p90, T91 p91, T92 p92, T93 p93, T94 p94, T95 p95, T96 p96, T97 p97, T98 p98, T99 p99, T100 p100, T101 p101, T102 p102, T103 p103, T104 p104, T105 p105, T106 p106, T107 p107, T108 p108, T109 p109, T110 p110, T111 p111, T112 p112, T113 p113, T114 p114, T115 p115, T116 p116, T117 p117, T118 p118, T119 p119, T120 p120, T121 p121, T122 p122, T123 p123, T124 p124, T125 p125, T126 p126, T127 p127, T128 p128, T129 p129, T130 p130, T131 p131, T132 p132, T133 p133, T134 p134, T135 p135, T136 p136, T137 p137, T138 p138, T139 p139, T140 p140, T141 p141, T142 p142, T143 p143, T144 p144, T145 p145, T146 p146, T147 p147, T148 p148, T149 p149) {
	BEGINE_STRING_FORMAT();
	if (!_InternalSafeFormat(format, 
		class_type<T1>::type, class_type<T2>::type, class_type<T3>::type, class_type<T4>::type, class_type<T5>::type, class_type<T6>::type, class_type<T7>::type, class_type<T8>::type, class_type<T9>::type, class_type<T10>::type, class_type<T11>::type, class_type<T12>::type, class_type<T13>::type, class_type<T14>::type, class_type<T15>::type, class_type<T16>::type, class_type<T17>::type, class_type<T18>::type, class_type<T19>::type, class_type<T20>::type, class_type<T21>::type, class_type<T22>::type, class_type<T23>::type, class_type<T24>::type, class_type<T25>::type, class_type<T26>::type, class_type<T27>::type, class_type<T28>::type, class_type<T29>::type, class_type<T30>::type, class_type<T31>::type, class_type<T32>::type, class_type<T33>::type, class_type<T34>::type, class_type<T35>::type, class_type<T36>::type, class_type<T37>::type, class_type<T38>::type, class_type<T39>::type, class_type<T40>::type, class_type<T41>::type, class_type<T42>::type, class_type<T43>::type, class_type<T44>::type, class_type<T45>::type, class_type<T46>::type, class_type<T47>::type, class_type<T48>::type, class_type<T49>::type, class_type<T50>::type, class_type<T51>::type, class_type<T52>::type, class_type<T53>::type, class_type<T54>::type, class_type<T55>::type, class_type<T56>::type, class_type<T57>::type, class_type<T58>::type, class_type<T59>::type, class_type<T60>::type, class_type<T61>::type, class_type<T62>::type, class_type<T63>::type, class_type<T64>::type, class_type<T65>::type, class_type<T66>::type, class_type<T67>::type, class_type<T68>::type, class_type<T69>::type, class_type<T70>::type, class_type<T71>::type, class_type<T72>::type, class_type<T73>::type, class_type<T74>::type, class_type<T75>::type, class_type<T76>::type, class_type<T77>::type, class_type<T78>::type, class_type<T79>::type, class_type<T80>::type, class_type<T81>::type, class_type<T82>::type, class_type<T83>::type, class_type<T84>::type, class_type<T85>::type, class_type<T86>::type, class_type<T87>::type, class_type<T88>::type, class_type<T89>::type, class_type<T90>::type, class_type<T91>::type, class_type<T92>::type, class_type<T93>::type, class_type<T94>::type, class_type<T95>::type, class_type<T96>::type, class_type<T97>::type, class_type<T98>::type, class_type<T99>::type, class_type<T100>::type, class_type<T101>::type, class_type<T102>::type, class_type<T103>::type, class_type<T104>::type, class_type<T105>::type, class_type<T106>::type, class_type<T107>::type, class_type<T108>::type, class_type<T109>::type, class_type<T110>::type, class_type<T111>::type, class_type<T112>::type, class_type<T113>::type, class_type<T114>::type, class_type<T115>::type, class_type<T116>::type, class_type<T117>::type, class_type<T118>::type, class_type<T119>::type, class_type<T120>::type, class_type<T121>::type, class_type<T122>::type, class_type<T123>::type, class_type<T124>::type, class_type<T125>::type, class_type<T126>::type, class_type<T127>::type, class_type<T128>::type, class_type<T129>::type, class_type<T130>::type, class_type<T131>::type, class_type<T132>::type, class_type<T133>::type, class_type<T134>::type, class_type<T135>::type, class_type<T136>::type, class_type<T137>::type, class_type<T138>::type, class_type<T139>::type, class_type<T140>::type, class_type<T141>::type, class_type<T142>::type, class_type<T143>::type, class_type<T144>::type, class_type<T145>::type, class_type<T146>::type, class_type<T147>::type, class_type<T148>::type, class_type<T149>::type, 
		Type_end)) NOT_SAFE_HANDLE();
	return _InternalCallVHelper(str, format, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60, p61, p62, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75, p76, p77, p78, p79, p80, p81, p82, p83, p84, p85, p86, p87, p88, p89, p90, p91, p92, p93, p94, p95, p96, p97, p98, p99, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111, p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127, p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143, p144, p145, p146, p147, p148, p149);
}


}

#endif // __STRING_FORMAT_H__

